Topic Modeling on Turkish News

by Talha Oz

Details on the project is available on GitHub


In [1]:
cd 'C:\Users\Talha\Documents\WinPython\projelerim\news\News-Commentary-Tweets-of-Elites'


C:\Users\Talha\Documents\WinPython\projelerim\news\News-Commentary-Tweets-of-Elites

In [2]:
import pandas as pd
from gensim import corpora, models
from nltk.corpus import stopwords
import nltk
import snowballstemmer
import re
from operator import itemgetter

In [22]:
df = pd.read_csv('data/TR-news.csv',usecols=['dt','title','newstxt'],parse_dates=[0])
df = df[df['newstxt'].str.contains("Amerika|ABD|Obama")]
documents = df.newstxt.tolist()
df.sort(['dt']).to_csv('data/amerika-news.csv',encoding='utf-8',index=False,columns=['dt','title'])
df.sort(['dt'])


Out[22]:
dt title newstxt
1916 2013-01-14 1979 İran’ına ödül yağdı – nediyor.com \nOscar’dan sonra sinema dünyasının en prestij...
1917 2013-01-14 Sağlık Bakanlığı’ndan Refiye açıklaması – nedi... \nMilyonda bir görülen “Gardner sendromu” hast...
1852 2013-01-16 Ünlü ressam Doğançay hayatını kaybetti – nediy... \nÜnlü ressam Burhan Doğançay bu sabah tedavi ...
1851 2013-01-16 Mehmet Ali Birand hastaneye kaldırıldı – nediy... \nKanal D Haber Grup Başkanı ve anchorman’ı de...
1812 2013-01-17 Gazeteciliğin ikonu Birand’ı kaybettik – nediy... \nKanal D Haber Grup Başkanı Mehmet Ali Birand...
1825 2013-01-17 Ölüm haberine Umur Birand’tan yalanlama – nedi... \nKanal D Haber Grup Başkanı Mehmet Ali Birand...
1795 2013-01-18 Birand’ın ölümünde ihmal şüphesi – nediyor.com \nDuayen gazeteci Mehmet Ali Birand’ın Salı gü...
1796 2013-01-18 Armstrong sonunda dopingi itiraf etti – nediyo... \nAmerika’nın gündemi Lance Armstrong. Ünlü bi...
1788 2013-01-19 Birand son yolculuğuna uğurlandı – nediyor.com \nPerşembe günü vefat eden duayen gazeteci Meh...
1761 2013-01-21 Patriotlar Türkiye’de – nediyor.com \nTürkiye’nin Suriye sınırına konuşlandırmak ü...
70 2013-01-22 Hatay’da NATO askerine çuval geçirme girişimi ... \nHatay’ın İskenderun ilçesinde Türkiye Gençli...
1744 2013-01-22 Obama ikinci kez yemin etti – nediyor.com \nABD Başkanı Barack Obama, ikinci başkanlık d...
1647 2013-01-25 Samatya’daki saldırıların faili aynı kişi – ne... \nİstanbul’da geçtiğimiz Aralık ayından bu yan...
1551 2013-01-29 “Şangay Beşlisi” açılımına ABD’den gülümseme –... \nBaşbakan Erdoğan’ın AB’ye alternatif olarak ...
56 2013-01-30 İsrail uçakları Suriye’yi vurdu – nediyor.com \nSuriye, İsrail’e ait savaş uçaklarının dün b...
1492 2013-02-01 Birand’ın 33′üncü günü – nediyor.com \nCan Dündar ve Bülent Çaplı’nın 17 Ocak’ta ya...
1479 2013-02-01 ABD Büyükelçiliği’ne intihar saldırısı – nediy... \nABD’nin Ankara Büyükelçiliği’nde saat 13:00 ...
1476 2013-02-01 Saldırıda talihsiz randevu – nediyor.com \n ABD’nin Ankara Büyükelçiliği’nde gerçekleşe...
52 2013-02-01 Başbakan: “TSK bir terör örgütü değildir” – ne... \nBaşbakan Erdoğan, silahlı terör örgütü lider...
1464 2013-02-02 Radikal’e “Korsakoff” tepkisi – nediyor.com \nDün Ankara’da ABD Başkonsolosluğu’na düzenle...
1436 2013-02-04 Sarai’nin soruşturmasına FBI da dahil oldu – n... \n İstanbul’da kaybolduktan bir süre sonra Cum...
49 2013-02-05 Didem Tuncay’dan üzen haber – nediyor.com \nABD’nin Ankara Büyükelçiliği girişindeki pat...
1419 2013-02-05 Tarantino’nun “Zincirsiz”i beklenen ilgiyi gör... \n“En İyi Film” dahil 5 dalda Oscar (Sinema Sa...
1417 2013-02-05 Erdoğan “Şangay Beşlisi”ni savundu – nediyor.com \nBaşbakan Erdoğan ile Rusya Devlet Başkanı Pu...
45 2013-02-06 Ergin Saygun’un kızının çığlığı – nediyor.com \nBalyoz davasında 18 yıl hapis cezası verilen...
1388 2013-02-06 Ahmedinejad’a da ayakkabı – nediyor.com \nİran Cumhurbaşkanı Ahmedinejad, Kahire’de Su...
1365 2013-02-07 FBI Sarai Sierra’dan şüphelendi – nediyor.com \nSarai Sierra’nın ölümünü soruşturan Amerikan...
1364 2013-02-07 Türkiye uyardı; Obama yönetimi sahip çıktı – n... \nABD Büyükelçisi Francis Ricciardone, Türk ya...
1333 2013-02-08 DHKP-C gözünü çıkarttı; özür diledi – nediyor.com \nDHKP-C, ABD’nin Ankara Büyükelçiliği’ne yöne...
1335 2013-02-08 Saygun tahliyesinde Arınç tesadüfü – nediyor.com \nBaşbakan Yardımcısı Bülent Arınç, dün akşam ...
... ... ... ...
9944 2014-11-29 Kobani’deki çatışmalar sınıra 25 metrede \nSuriye’de Halep’e bağlı Kobani’de (Ayn el Ar...
9069 2014-12-04 ABD Büyükelçiliği’nden Gaziantep’te saldırı uy... \nABD Ankara Büyükelçiliği, radikal grupların ...
8857 2014-12-04 “AK Saray” için açılan davada Atatürk’ün vasiy... \nAralarında Mimarlar Odası’nın da bulunduğu m...
8960 2014-12-04 Şişli Belediyesi’nde İnönü-Sarıgül gerilimi \nŞişli Belediye Başkanı Hayri İnönü, Başkan Y...
9068 2014-12-04 ABD askerlerinin başına çuval geçirenlere 10 y... \nİstanbul Eminönü semtinde iki ABD askerinin ...
8656 2014-12-05 Türkiye’nin ilk Kültür Bakanı Halman vefat etti \nTürkiye’nin ilk Kültür Bakanı ve Bilkent Üni...
8747 2014-12-05 Tatlıses: “Saray milletin; bunu göremediniz” \nCumhurbaşkanlığı Sarayı ile ilgili tartışmal...
8579 2014-12-06 Cumhurbaşkanı: “Polis kendisini savunmayacak mı?” \nCumhurbaşkanı Erdoğan, ABD’de son dönemde ta...
8486 2014-12-07 Russell Crowe: “Avustralya’yı Müslümanlar keşf... \nHollywood’un ünlü aktörlerinden Russell Crow...
7182 2014-12-12 Dolar iki ayın zirvesinde; 2.30 TL’yi geçti \nDolar, iki ayın ardından yeniden 2.30 TL sev...
7069 2014-12-13 “ABD’li Başkonsolos, Türk genciyle evleniyor” ... \nABD’nin İstanbul Başkonsolosu Charles F. Hun...
6862 2014-12-14 CHP’li Haluk Koç’tan yeni “torpil” listesi \nHaberListe\n\nCHP Genel Başkan Yardımcısı ve...
6570 2014-12-15 Dolarda tarihi rekor; 2.40 TL’ye dayandı \n16-17 Aralık’ta gerçekleşecek Amerikan Merke...
6203 2014-12-16 “Digitürk Katar şeyhine satıldı” iddiası \nYüzde 53′ü ABD’li Providence fonuna, yüzde 4...
6095 2014-12-17 Erdoğan’dan Gülen’e: “Elini kolunu bağlayan yo... \nHaberAçıklamadan satırbaşları\nKonya-İstanbu...
5908 2014-12-18 Nazlı İnönü suçladı; Sarıgül yalanladı \nİstanbul’da CHP’li Şişli Belediyesi’nde yaşa...
5408 2014-12-19 Fuat Avni ile Gülerce yeniden karşı karşıya \nHaberFuat Avni'nin paylaşımlarıGülerce'nin y...
5411 2014-12-19 Fethullah Gülen hakkında yakalama talebi \n14 Aralık soruşturması kapsamında Fethullah ...
5122 2014-12-22 Bulaç Dilipak’ı doğruladı: “AK Parti bir Ameri... \nHaberİddia ve Dilipak'ın yanıtı\n\nZaman gaz...
4715 2014-12-23 Rektör: “Tayt ya da mini etekle üniversiteye g... \nİstanbul Aydın Üniversitesi Rektörü Prof. Dr...
4010 2014-12-26 Davutoğlu: “‘Dönemin başbakanı’ dedikleri kişi…” \nBaşbakan Ahmet Davutoğlu, ATV ve A Haber kan...
3818 2014-12-27 Bülent Arınç: “Arkadan vurulduk” \nHükümet Sözcüsü ve Başbakan Yardımcısı Bülen...
3521 2014-12-29 Türk ekonomisi iki basamak geriledi \nUluslararası araştırma şirketi İngiliz Ekono...
3624 2014-12-29 Gülen’in pasaportunun iptaline Danıştay vizesi \nHaberŞimdi ne olacak?\n\nDanıştay 10′uncu Da...
3062 2014-12-31 Türkiye’de 2014 böyle geçti \nHaberAy ay 2014'ün görünümü\n\nTürkiye harek...
2488 2015-01-02 MEB’den yeni “değerler eğitimi” \nHaberKitapçıktan bölümler\nMilli Eğitim Baka...
2486 2015-01-03 Dumanlı’dan ABD basınında ağır Erdoğan eleştirisi \nZaman gazetesi Genel Yayın Yönetmeni Ekrem D...
2273 2015-01-04 Tatlıses milletvekili adaylığını duyurdu \nÜnlü türkücü İbrahim Tatlıses, 2015 seçimler...
1094 2015-01-07 ÖDP lideri Taş: “Türkiye’de ‘devrimci ilahiyat... \nHürriyet gazetesinde Ahmet Hakan’ın bu hafta...
176 2015-01-08 Kadri Gürsel: “Fransa’nın Madımak’ı” \nMilliyet gazetesi yazarı Kadri Gürsel, Frans...

585 rows × 3 columns


In [4]:
stemmer = snowballstemmer.TurkishStemmer()
stoplist = stopwords.words('turkish')
stoplist.extend("active number yes titlesection bootstrap tabtitle tboot tab tabcontent contentsection nin nın bir".split())
stoplist = stemmer.stemWords(stoplist)
stoplist = set(stoplist)

In [5]:
texts=[]
for doc in documents:
    doc = re.sub('[!"#%\'()*+,-./:;<=>?@\[\]^_`{|}~1234567890’”“′‘\\\]',' ', doc).split()
    doc = stemmer.stemWords(doc)
    text= [w.strip() for w in doc if len(w.strip())>=3 and w.strip() not in stoplist]
    texts.append(text)

In [6]:
dictionary = corpora.Dictionary(texts)
corpus = [dictionary.doc2bow(text) for text in texts]
tfidf = models.TfidfModel(corpus)
corpus_tfidf = tfidf[corpus]

In [7]:
n_topics = 10
lda = models.LdaModel(corpus_tfidf, id2word=dictionary, num_topics=n_topics, passes=5,iterations=500)
for i in range(0, n_topics):
    terms = [term[1] for term in lda.show_topic(i, 10)]
    print ("#" + str(i) + ": "+ ", ".join(terms))


WARNING:gensim.models.ldamodel:too few updates, training might not converge; consider increasing the number of passes or iterations to improve accuracy
#0: IŞİD, Davutoğlu, ödül, Baka, İsrail, Akdoğa, Seba, Kerry, Madımak, sonra
#1: Gez, Sevgili, değer, iPho, fiyat, Pap, Erdoğa, Apple, Metiner, logo
#2: seviye, Bankas, milyar, puan, rekor, Merkez, rapor, işle, Bor, lira
#3: Kotil, Bankas, AVM, iptal, THY, Suri, Meclis, pasaport, Davutoğlu, FED
#4: Birandı, Menderes, Twitter, ünlü, müdahale, leopar, eriş, Güle, Erdoğa, oyun
#5: Güle, ceket, Ricciardo, Kerkük, Twitter, Zenca, MERS, İsrail, Başbaka, Çet
#6: Gez, Davutoğlu, Başbaka, Güle, Yerkel, Holla, patriot, Beşlis, Halma, Mayıs
#7: Nusra, Gazze, Dilipak, kiş, ALS, bağış, ziyaret, haber, Savaro, silah
#8: CHP, Erdoğa, milyar, haber, Gökçek, Genel, Türki, Amerika, yer, yıl
#9: Güle, Erdoğa, IŞİD, Başbaka, Türki, Kobani, Suri, dedi, Oba, konu

In [8]:
i = 0
print ('Topic distribution on an arbitrarily selected document:\n')
print ('Original document: ' + documents[i])
print ('Preprocessed document: ' + str(texts[i]))


Topic distribution on an arbitrarily selected document:

Original document: 
ABD Başkanı Barack Obama ile 16 Mayıs’ta görüşmek için Amerika’ya giden Başbakan Erdoğan, bir gazetecinin “Fethullah Gülen’le görüşme ihtimaliniz olabilir mi?” sorusuna, “Şu anda resmi programımızda böyle bir şey yok ama gökten ne yağar ki yer kabul etmez ayrı bir konu” diyerek cevapladı.
1999 yılında ABD’nin Pensilvanya eyaletine yerleşen Gülen, geçtiğimiz ay ABD’li Time dergisi tarafından Abdullah Öcalan ile birlikte “Dünyanın en etkili 100 ismi” arasında gösterilmişti. Gülen, geçtiğimiz haftalarda, aralarında Ekrem Dumanlı, Mehmet Altan, Mahmut Övür ve Amberin Zaman’ın da olduğu bazı gazetecilerle ABD’de görüşmüştü. Görüşmede, Gülen’in AK Parti hükümetini eleştirdiği yönünde iddialar basına yansımıştı.
Başbakan Erdoğan’da geçtiğimiz Haziran ayında Türkçe Olimpiyatları final töreninde yaptığı konuşmada Gülen’e “Bitsin bu gurbet, bitsin bu hasret…“ diye seslenmişti.

Preprocessed document: ['ABD', 'Başka', 'Barack', 'Oba', 'Mayıs', 'görüşmek', 'Amerika', 'Başbaka', 'Erdoğa', 'gazeteç', 'Fethullah', 'Güle', 'görüşme', 'ihtimal', 'olabilir', 'soru', 'resmi', 'program', 'yok', 'gök', 'yağar', 'yer', 'kabul', 'etmez', 'ayrı', 'diyerek', 'cevapladı', 'yıl', 'ABD', 'Pensilvanya', 'eyalet', 'yerleşe', 'Güle', 'geçtik', 'ABD', 'dergis', 'taraf', 'Abdullah', 'Öcala', 'birlik', 'Dünya', 'etkil', 'ismi', 'ara', 'gösterilmiş', 'Güle', 'geçtik', 'hafta', 'ara', 'Ekrem', 'Dumanlı', 'Mehmet', 'Altan', 'Mahmut', 'Övür', 'Amber', 'Zama', 'olduk', 'gazeteç', 'ABD', 'görüşmüş', 'Görüşme', 'Güle', 'Parti', 'hükümet', 'eleştirdik', 'yön', 'iddia', 'yansımış', 'Başbaka', 'Erdoğa', 'geçtik', 'Hazira', 'Türkçe', 'Olimpiyat', 'final', 'tören', 'yaptık', 'konuşma', 'Güle', 'Bit', 'gurbet', 'bit', 'hasret…', 'seslenmiş']

In [9]:
print ('Which LDA topic maximally describes this document?')
print ('Topic probability mixture: ',end="")
for j,k in lda[corpus[i]]:
    print('(%d, %3.2f)' % (j,k), end = ' ')
print ('\nTopic with the highest probability: topic #' + str(max(lda[corpus[i]],key=itemgetter(1))[0]))


Which LDA topic maximally describes this document?
Topic probability mixture: (6, 0.31) (9, 0.68) 
Topic with the highest probability: topic #9